package uid.elements;


/**
 * @author Patricia Vilain
 */
public class Transition {

	public static final int STATE = 1;
	public static final int UID = 0;

	String id;
	AbstractState targetState;
	String nameTargetUID;
	int targetType = STATE;
	Object source; // State, DataItem, Structure, Substate
	String option;
	String condition;
	boolean noReturn;

	/**
	 * Cria uma transicao que possui como origem o source e como destino um
	 * estado de interacao.
	 */
	public Transition(String id, Object source, AbstractState targetState) {
		this.id = id;
		this.source = source;
		this.targetState = targetState;
	}

	/**
	 * Cria uma transicao que possui como origem o source e como destino a
	 * chamada de outro UID.
	 */
	public Transition(String id, Object source, String nameTargetUID) {
		this.id = id;
		this.source = source;
		this.nameTargetUID = nameTargetUID;
		this.targetType = UID;
	}

	public Object getSource() {
		return source;
	}

	public String getCondition() {
		return condition;
	}

	public void setCondition(String condition) {
		this.condition = condition;
	}

	public boolean isNoReturn() {
		return noReturn;
	}

	public void setNoReturn(boolean noReturn) {
		this.noReturn = noReturn;
	}

	public String getOption() {
		return option;
	}

	public void setOption(String option) {
		this.option = option;
	}

	public String getId() {
		return id;
	}

	public AbstractState getTargetState() {
		return targetState;
	}

	public int getTargetType() {
		return targetType;
	}

	public String getNameTargetUID() {
		return nameTargetUID;
	}
}
